home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / FAQSYS18.ZIP / FAQS.DAT / MODEX.FAQ / text0000.txt < prev   
Encoding:
Text File  |  1995-12-12  |  24.7 KB  |  619 lines

  1. Ok, this might be the last post for a while, its archived on x2ftp.oulu.fi
  2. thanks to jouni, anyway, I am off again for a few weeks..
  3.  
  4.  
  5.       X-Mode Frequently Asked Questions - By Zoombapup (Phil)  2-Oct-94
  6.       ======================================================================
  7.  
  8.       Foreword
  9.       --------
  10.  
  11.       Hmm, whats new this time??
  12.  
  13.       Well, I am off the net for a coupla weeks, which is kinda hard :)
  14.       dont forget x2ftp.oulu.fi is now a good programmers site, if a
  15.       little slow sometimes, in /pub/msdos/programming you can find
  16.       all sorts.
  17.  
  18.       Basically, READ THE INDEX FILE before you ask about stuff, all jouni
  19.       seems to post is answers to "where is this file or that file" he was
  20.       kind enough to setup and moderate that site, least people could do is
  21.       to do a LITTLE of the work themselves.
  22.  
  23.       Table of Contents
  24.       -----------------
  25.  
  26.       1) What is this FAQ and why should I read it??
  27.       2) What IS mode X?
  28.       3) How do you set mode-x?  (asm source)
  29.       4) Source code reference list
  30.           a) Information Sources
  31.           b) Books & Other sources
  32.           c) Source Code etc...
  33.       5) Simple Questions and answers (read it ok??)
  34.       6) Further helpful reading  (Not necassarily Mode-X)
  35.  
  36.  
  37.       Section 1 - What is this FAQ and why should I read it??
  38.       -------------------------------------------------------
  39.  
  40.       This FAQ (Frequently asked questions file) is here to provide the
  41.       reader with a brief outline of what Mode-X is and to provide some
  42.       useful references for looking into it further. It is also an
  43.       attemp by me to help cut down the posts on Comp.sys.ibm.pc.demos
  44.       asking for information on Mode-X programming when that very same
  45.       information is posted weekly (or seems like it).
  46.  
  47.         It is also a chance for the reader to find reference material
  48.       that may take ages searching to do something specific in Xmode.
  49.  
  50.       If youre really desperate to find something, then maybe its a
  51.       chance to learn how to use archie?? try telnetting to
  52.       archie.doc.ic.ac.uk (or one closer to you), login as archie
  53.       then try typing prog <filename> to search for a particular file
  54.       (and dont forget to note the result!).
  55.  
  56.  
  57.       Section 2 - What IS mode-X??
  58.       ----------------------------
  59.  
  60.       Well, It has been mentioned that perhaps I should make it clear what
  61.       is meant by Mode-X, well, it can really mean two things, the first is
  62.       that it means a mode originally written about by Mike Abrash in Dr Dobbs
  63.       journal (a US programmers magazine), it basically involved tweaking
  64.       (reprogramming) some of the registers on the VGA display adaptor,
  65.       in effect it gave a resolution of 320x240 with 3 pages for graphics,
  66.       and he christened it Mode-X (because there was no bios mode for it).
  67.       After this article it became easier for everyone to write the same
  68.       type of things, using different resolutions, e.g. 320x200x4page etc..
  69.       the problem was, what would one call these modes?? as there are just
  70.       about unlimited combinations, I think it would be better to refer to
  71.       ALL tweaked VGA modes as Mode-X, and as far as I am concerned that
  72.       is what mode-x means......
  73.  
  74.       Anyway, back to the text:-
  75.  
  76.       Over to Themie Gouthias for that one..... (original author of Xlib)
  77.  
  78.       Mode X is a derrivative of the VGA's standard mode 13h
  79.       (320x200 256 color). It is a (family) of undocumented video modes
  80.       that are created by tweaking the VGA's registers. The beauty of mode X
  81.       is that it offers several benefits to the programmer:
  82.  
  83.       - Multiple graphics pages where mode 13h doesn't allowing for page
  84.         flipping (also known as double buffering) and storage of images
  85.         and data in offscreen video memory
  86.  
  87.       - A planar video ram organization which although more difficult
  88.         to program, allows the VGA's plane-oriented hardware to be used
  89.         to process pixels in parallel, improving performance by up to
  90.         4 times over mode 13h
  91.  
  92.       - Loads of other neat tricks associated with having multiple pages
  93.         of video memory to program with, and also smoother animations
  94.         (PC Note that one :) )
  95.  
  96.       Please note BEFORE you go flooding Themie with email about Xlib
  97.       questions that he has taken a break from supporting it himself
  98.       for a while and has left two other people in charge. (see ref)
  99.  
  100.       Section 3 - How to set up mode x
  101.       --------------------------------
  102.  
  103.         Here's  the code needed to set up a tweaked 320*200*256-mode.
  104.         It  was  in  a  text  file  by  some  unknown finnish author,
  105.         It was translated by Saint/EMF (thanks Jani).
  106.         
  107. ---------------------------------------------------------------
  108. 1. Set the BIOS mode 13h, which is the standard 256-color mode.
  109.  
  110.         mov     ax, 0013h
  111.         int     10h
  112.  
  113. 2. Put the CHAIN4-mode of Sequencer off
  114.  
  115.         mov     dx, 03C4h
  116.         mov     ax, 0604h
  117.         out     dx, ax
  118.  
  119. 3. Clear the video memory (setting mode 13h clears only every fourth byte
  120.                            from each plane)
  121.  
  122.         mov     ax, 0F02h
  123.         out     dx, ax
  124.         mov     dx, 0A000h
  125.         mov     es, dx
  126.         xor     di, di
  127.         xor     ax, ax
  128.         mov     cx, 8000h
  129.         rep     stosw
  130.  
  131. Note: Parts 4 and 5 may need switching round, i.e. do part 5 first, then
  132. part 4... but it works anyway....
  133.  
  134. 4. Turn off the CRTC's LONG-mode
  135.  
  136.         mov     dx, 03D4h
  137.         mov     ax, 0014h
  138.         out     dx, ax
  139.  
  140. 5. Turn on the CRTC's BYTE-mode
  141.  
  142.         mov     ax, 0E317h
  143.         out     dx, ax
  144.  
  145.    And now you are in tweaked mode!
  146.    If you want also double the vertical resolution to 320*400*256,
  147.    add this:
  148.  
  149.         mov     ax, 4009h
  150.         out     dx, ax
  151. ---------------------------------------------------------------
  152.  
  153.         The last out is needed if you want to double the Y-resolution
  154.         to 400 lines,  so that  each scanline  has its  own  line  in
  155.         memory.  The bits 0-4 in  the  CTRC register 09h  define  the
  156.         number of  times  to display  the scanline minus one.  To get
  157.         back to  200-line mode,  out 4109h there,  or if  you  want a
  158.         100-line  mode,  out 4309h.  The same thing can be applied to
  159.         the Mode X to get 480- or 120-line modes.
  160.  
  161.       Many Thanks to jani for this, I've only just decided to include
  162.       it in the faq (I had it for months, but I didnt want to confuse
  163.       beginners by supplying source like this, but WTH) -- Phil.
  164.  
  165.  
  166.       Section 4 - Source Code reference list
  167.       --------------------------------------
  168.  
  169.       Alright, this is probably THE most important part, in that this
  170.       is where you'll find all the source code and information you'll
  171.       ever need to program proficiently in mode-x, so if you EVER
  172.       post a question about HOW TO PROGRAM MODE-X after reading this
  173.       list and getting the source etc, then YOU WILL BE SHOT AT DAWN :)
  174.  
  175.       a) Information Sources
  176.       ----------------------
  177.       These sources are good for mode-x stuff..
  178.  
  179.       Filename : xintro18.zip  Where: simtel archives... usually
  180.       Directory : I forgot to write it... should be /VGA will be confirmed.
  181.       Author   : Robert Shmidt (Ztiff Zox??)
  182.  
  183.       Simtel Stuff can be gotten from oak.oakland.edu
  184.       
  185.       Description:
  186.  
  187.       XDiscuss (now called Xintro :)) is a really good description of
  188.       How modeX works, how the memory is organised in planar fashion,
  189.       it includes a few graphics pictures to help visualise the memory
  190.       organisation, really a must have to understand the mode.
  191.  
  192.       ----------------
  193.  
  194.       Filename : Graphpro.lzh Where: wasp in pub/msdos/demo/
  195.                         programming/source 
  196.       Author   : Michael Abrash (Mode X guru)
  197.  
  198.       Description:
  199.  
  200.       This file is a collection of texts and sample source code to loads of
  201.       graphics programming problems, mike was the first person to really
  202.       describe Mode-X in a magazine (Dr Dobbs Journal), in this file he
  203.       goes through a number of interesting routines etc, he also sets up
  204.       a simple 3D polygon filling, lightsourced program called X-Sharp,
  205.       all-in-all this file is A MUST HAVE!
  206.       ---------------------
  207.  
  208.       Filename : Tweakxxx.zip  Where : same place as xintro above
  209.       Author: Robert Shmidt (again!)
  210.  
  211.       Description:
  212.  
  213.       Tweak is a utility that lets you mess around with the registers on
  214.       youre VGA card, which is a real help when trying to come up with
  215.       youre own Xmode, it enables you to test settings on the CRTC regs
  216.       and play with loads of settings.
  217.       ----------------------
  218.  
  219.       Filename : Unchain.zip Where : probably most archives....
  220.       Author: Colin Buckley  (with correct tabs, honest :) )
  221.  
  222.       Description:
  223.  
  224.       Unchain is a utility to help people using turbo debugger to debug
  225.       mode-x programs (because they screw TD's display up usually),
  226.       it allows viewing of the pages in vid ram etc....
  227.  
  228.       UPDATE: Unchain also works with BC,BP and loads of other products..
  229.       ------------------------
  230.  
  231.  
  232.       b) Books & Other Sources
  233.       ------------------------
  234.  
  235.       Nothing I know of in this category as yet, some non-specific
  236.       graphics books are recommended in a FAQ in rec.games.programmer
  237.       I suggest anyone interested in graphics programming read that
  238.       newsgroup (or at the very least get the FAQ, I think its on
  239.       ftp.uwp.edu - but I'll confirm this)
  240.  
  241.       NOTE: For those of you without a VGA reference for the registers
  242.             the r.g.p FAQ has loads of them in, so look out for it!!
  243.  
  244.       Also you can READ comp.sys.ibm.pc.demos for a while, and you
  245.       will usually pick up any info you need to do something that
  246.       you cant get from the files below, only if you have read the
  247.       newsgroup for a while and have not seen what you need posted
  248.       should you post a question, PLEASE DON'T TIE UP THE GROUP
  249.       especially with questions that have been answered over and
  250.       over again....
  251.  
  252.       c) Source Code
  253.       --------------
  254.     
  255.       Most of this stuff can be found on ftp.eng.ufl.edu in the
  256.       directory  pub/msdos/demos/programming/source
  257.  
  258.       NOTE: when I refer to wasp, I mean the above site, this was
  259.       just the old name for the site.
  260.  
  261.       Wasp is probably THE best place to look for new source right
  262.       now, as many other sites have had major space problems, but
  263.       wasp CAN be very slow..... some other programming stuff can
  264.       be found on archive.epas.utoronto.ca mainly soundcard info
  265.       for the gravis ultrasound. (Nice SDK and stuff) but as always
  266.       looking around is the order of the day...
  267.  
  268.       --------------
  269.  
  270.       Filename: Xlib06.zip  Where: wasp
  271.       directory: /pub/msdos/demos/programming/source
  272.       Author: Many contributors, originally by themie gouthias..
  273.  
  274.       Decription:
  275.  
  276.       This really is THE source code to get to be able to use Xmode.
  277.       the archive contains mainly C linkable assembler code that
  278.       covers pretty much everything possible with Mode-X, all the
  279.       code is copyright public domain, and is usually pretty fast.
  280.       In the archive there are also demo programs to show what is
  281.       possible and some useful doc's and further references.
  282.  
  283.       ALSO: Note that there are 2 new re-workings of Xlib in pascal
  284.             called Xlib_tp5.zip and Xlibpas.zip available for pascal
  285.             coders available on the net (ftp etc...)
  286.  
  287.       NOTE: If you have problems with the unit in Xlibpas not working
  288.             be sure to set the compiler switches {$G+} and {$X+} which
  289.             enable 286 code and extended syntax, then everything
  290.             should run allright.
  291.  
  292.       ------------
  293.  
  294.       Filename: stmik020.lzh   Where: TBC (to be confirmed)
  295.       directory: at a guess try ftp.uwp.edu somewhere...
  296.       Author: Future Crew
  297.  
  298.       Description:
  299.  
  300.       This archive is FC's release of the screamtracker music interface
  301.       kit (basically a mod player that you can use in youre demo's),
  302.       whats interesting about it is that they have included the whole
  303.       of thier MENTAL SURGERY demo, which has them setting a Mode-X
  304.       variant, and also I believe setting up a VBI int... good to see
  305.       how a well known (who am I kidding) group does things like
  306.       the usualy horizontal stars....  All code in assembler.
  307.  
  308.       ------------
  309.  
  310.       Filename: vlafont.zip  Where: wasp (look for vlapak1.zip)
  311.       directory: usual wasp programming dir....
  312.       Author: Draeden (of VLA)
  313.  
  314.       Description:
  315.  
  316.       This archive contains all the code and tools to incorporate a
  317.       scrolly mode-X font routine, has sample code (including Y scale)
  318.       and has a good re-working of Mode-X set code from Xlib, all code
  319.       in assembler...
  320.  
  321.       Note: Generally try to get anything with VLA in the title,
  322.             Draeden has released a load of code, and although he's made
  323.             himself scarce for a while, the rest of VLA can be mailed,
  324.             also he has done IMHO the best ModeX setting code for asm
  325.             programmers...
  326.  
  327.       ------------
  328.  
  329.       Filename: mx2_vla.zip Where: TBC
  330.  
  331.       Author: Draeden (of VLA)
  332.  
  333.       This is THE best working of Mode-X set code I've seen, really an update
  334.       on the routines found in vlafont.zip, Its really a must have for asm
  335.       programmers (especially tasm users), it provides loads of useful routines
  336.       like mode setting (really flexible) and palette and other stuff like that.
  337.  
  338.       More stuff about VLA releases next time.
  339.  
  340.  
  341.       Section 4 - Simple questions and answers
  342.       ----------------------------------------
  343.  
  344.       1q) Is it possible to reset mode-x so that the addressing is linear
  345.          like good old 13h but with the 4 pages still??
  346.  
  347.       1a) No, to the best of available knowledge no its not....
  348.  
  349.       Note: Just to update this, there has been some discussion carried on
  350.             and it seems that it IS possible on a very few VGA cards, but
  351.             its so rare that it is practically useless, unless someone
  352.             can get it to work on ALL vga cards
  353.  
  354.       2q) Is it possible to set up my own mode, in some way??
  355.  
  356.       2a) Yes, but it is quite a tricky process, a utility to help you
  357.           try tweaking the registers for this sort of thing is in
  358.           the file section 3a) Information sources (tweak by Rob shmidt?)
  359.  
  360.       3q) I have a (insert a crappy vid card name) VGA card, with 4meg memory
  361.           can I still use ModeX?
  362.  
  363.       3a) Yeah, basically ANY card 100% ibm (tm) VGA compatible can do it..
  364.           and why have you got 4 meg?? :)
  365.  
  366.       4q) I want to be able to double buffer using a VBL is there one on the
  367.           VGA and how do I use it??
  368.  
  369.       4a) There isn't a built in VBL on the vga, but you CAN set one up by
  370.           re-synch-ing one of the timers (08h usually), there is an example
  371.           in the newer Xlib (ver 06).
  372.  
  373.           Note: there are also VBL examples in mental-surgery by Future-Crew
  374.           and in the demoVT example code *for thier magnificent modplayer* :)
  375.           demoVT.arj  (at least demoVT is on ftp.eng.ufl.edu)
  376.  
  377.       5q) I want to do a font routine in 320x200x256x4 mode x, and I cant
  378.           get hold of any fonts, the ones Ive got are scanned left to right
  379.           top to bottom, and they make for a hard font routine, is there
  380.           any fonts that I can use in a different format?
  381.  
  382.       5a) Yes, you can get two utilities for fonts that are perfect for
  383.           mode-x formats, one is in VLAFONT, mentioned elsewhere in the FAQ
  384.           and another is in PCXTOOLS (which is also mentioned elsewhere), if
  385.           you get either one, they hold the font data scanned from top to
  386.           bottom, left to right (i.e. columnwise) which makes drawing them in
  387.           mode-x much faster (dont need to keep setting the plane), also
  388.           this layout lets you do things like move the start of the column
  389.           in a sine wave (for a sin scroller) and other effects..
  390.  
  391.       6q) What sort of effects are possible in mode-x that are not possible
  392.           in 13h? and why would I use them?
  393.  
  394.       6a) Well, basically the effects available in mode-x over the normal
  395.           mode 13h stem from the availability of off-screen video ram, this
  396.           means that you have access to the 256k ram on youre card, rather
  397.           than just the 64k that can be accessed by the PC (the pc address
  398.           space for VGA use is only a 64k window), using off screen ram,
  399.           it is possible to use VGA hardware to do scrolling (via the screen
  400.           start address and pixel pan registers), fast vram-vram copies,
  401.           double buffering (drawing to an offscreen page while you display
  402.           another and then flipping these two *also called page flipping*
  403.           there are MANY things that can be done with mode-x, but sadly
  404.           coding for it is more complex as a result.
  405.  
  406.       NOTE: These techniques require a bit of practice, it would be wise
  407.             to learn the in's and out's of normal mode-x BEFORE posting
  408.             to newsgroups about "How do I?" questions, many times just
  409.             looking at Xlib and other related sources will show you how
  410.             to do these things.
  411.  
  412.       Section 4 - Further Helpful reading
  413.       -----------------------------------
  414.  
  415.       Newsgroups!! pretty simple really, read the graphics newsgroups,
  416.                    rec.games.programmer has some useful info on occasion
  417.                    alt.graphics, comp.graphics (I think), so get a list
  418.                    of newsgroups and take em all!! :) well, a few...
  419.  
  420.       Note: NEVER just go straight to a newsgroup you've never read before
  421.             and post loads of questions, read it for about a month or so
  422.             this gives you a chance to see what the group is about, and
  423.             also to see if there's a faq posted, usually FAQ's are posted
  424.             at least once a month...
  425.  
  426.       Reference Books
  427.       ---------------
  428.  
  429.       General
  430.       -------
  431.  
  432. Beginner:
  433. ---------
  434. -"Assembly Language from Square One", Jeff Duntemann, Scott Foresman IBM
  435. Comptuter Books. ISBN 0-673-38590-6.
  436. -"Assembly Language for the IBM PC", Kip R. Irvine, ISBN 0-02-359840-9
  437. -"Mastering Turbo Assembler", by Tom Swan, Hayden Books, 1989.
  438. ISBN 0-672-48435-8.
  439.  
  440. NOTE: Ive been told this is a good beginner book, might scan through
  441. it when I'm back at uni and do a review for newbie's...
  442.  
  443. -"Assembly Language and Systems Programming for the IBM PC and
  444. Compatables", Karen A. Lemone, Little, Brown, & Co. ISBN 0-316-52069-1.
  445. -"Assembly Language Primer for the IBM PC/XT", Robert Lafore,
  446. Plume/Waite.
  447. -"Using Assembly Language", Allen L. Wyatt Sr., Que 1990.
  448. ISBN 0-88022-464-9.
  449.  
  450. Intermediate:
  451. -------------
  452. -"The Zen of Assembly", Michael Abrash, Scott Foresman Publ.
  453.  
  454. plus "Zen of code optimisation" same author
  455.  
  456. -"Assembly Language Primer for the IBM PC/XT"
  457. -"IBM Microcomputers: A Programmer's Handbook", Julio Sanchez and Maria
  458. P. Canton, McGraw-Hill. ISBN 0-07-054594-4.
  459. -"Programmer's Problem Solver for the IBM PC, XT, and AT", Robert
  460. Jourdain, Prentice Hall 1986. ISBN 0-89303-787-7.
  461. -"IBM PC ASSEMBLER LANGUAGE AND PROGRAMMING", Peter Abel, 1987,
  462. Prentice-Hall, hardcover (college text). ISBN 0-13-448143-7.
  463.  
  464. Advanced:
  465. ---------
  466. -"80386: A Programming and Design Handbook", 2nd ed., Penn & Don Brumm,
  467. TAB Books. ISBN 0-8306-3237-9.
  468. -"80486 Programming", Penn & Don Brumm and Leo J. Scanlon, McGraw-Hill.
  469. ISBN 0-8306-3577-7.
  470. -"ADVANCED ASSEMBLY LANGUAGE", Steven Holzner and Peter Norton Computing,
  471. Inc., Brady Books/Simon and Schuster. ISBN 0-13-658774-7.
  472.  
  473.  
  474.        Video Graphics
  475.        --------------
  476.  
  477. Intermediate:
  478. -------------
  479. -"Programmer's Guide to PC & PS/2 Video Systems", Richard Wilton,
  480. Microsoft Press. ISBN 1-55615-103-9.
  481.  
  482. out of press now i believe.. supposedly good if you can find it..
  483.  
  484. Advanced:
  485. ---------
  486. -"Power Graphics Programming", Michael Abrash, Que Corporation. ISBN
  487. 0-88022-500-9
  488. -"Programmers Guide to the EGA and VGA cards", 2nd Ed., Richard F.
  489. Ferraro, Addison-Wesley Publishing Co. ISBN 0-201-57025-4.
  490.  
  491. I dont recommend this one..
  492.  
  493. -"Advanced Programmers Guide to the EGA/VGA", George Sutty and Steve
  494. Blair, Brady Books/Prentice Hall Trade. ISBN 0-13-729039-X.
  495.  
  496.  
  497.        References/Specialized
  498.        ----------------------
  499.  
  500. Intermediate:
  501. -------------
  502. -"Undocumented DOS", Andrew Schulman, Raymond J. Michels, Jim Kyle, Tim
  503. Paterson, David Maxey, and Ralf Brown, Addison-Wesley. ISBN
  504. 0-201-57064-5.
  505. -"DOS Programmer's Reference", 2nd Edition, Terry Dettmann, QUE.
  506. ISBN 0-88022-458-4.
  507.  
  508. Advanced:
  509. ---------
  510. -"386SX Microprocessor Programmer's Reference Manual", Intel Corp.,
  511. McGraw-Hill. ISBN 0-07-881673-4.
  512. -"i486 Microprocessor Programmer's Reference Manual", Intel Corporation,
  513. McGraw-Hill. ISBN 0-07-881674-2.
  514. -"The Programmer's PC Sourcebook", Thom Hogan, Microsoft Press. ISBN
  515. 1-55615-321-X.
  516. -"System BIOS for IBM PCs, Compatables, and EISA Computers", 2nd Ed.,
  517. Phoenix Technologies Ltd., Addison Wesley. ISBN 0-201-57760-7.
  518. -"PC Magazine Programmers Technical Reference: The Processor and
  519. Coprocessor", Robert L. Hummel, Ziff-Davis Press. ISBN 1-56276-016-5.
  520. -"Mastering Serial Communications", Peter W. Gofton, Sybex 1986.  ISBN
  521. 0-89588-180-2.
  522. -"DOS Programmer's Reference", 2nd Ed.
  523. -"MS-DOS Programmer's Reference", MS Press. ISBN 1-555615-329-5.
  524.  
  525. Also there is a PC programmers reference out there as a file, dosrefxx.zip
  526. which I can REALLY recommend, and also HELPPC21.ZIP which is good too,
  527. look for both on x2ftp.oulu.fi
  528.  
  529.  
  530.       Note: the above taken from a faq I had.. some books are out of print.
  531.       --------------
  532.  
  533.       EGA/VGA a programmers reference guide by Bradley Dyck Kliewer
  534.       ISBN: 0-07-035099-X
  535.  
  536.       Description:
  537.  
  538.       Pretty clear VGA technical reference manual, I prefer it to ferraro's
  539.       (which I will post details on next time), it has all the info you need
  540.       on all the vga's registers, very clearly explained, probably THE best
  541.       vga reference for clarity, although perhaps not as exhaustive on the
  542.       svga than other ref's.
  543.  
  544.       I'd say that this book is really an essential to all those who havent
  545.       got a VGA reference... (my personal opinion)
  546.       ---------------
  547.  
  548.       Introduction to Algorithms - by Thomas H Cormen
  549.       ISBN: 0-262-03141-8  published by Mit press and McGraw Hill..
  550.  
  551.       Description:
  552.  
  553.       A radically good book, covers pretty much ALL the algorithms needed
  554.       in programming, although the title says introduction, it is not just
  555.       an introductory level text, but covers a wide range of levels, it has
  556.       timings, examples, discussion, and information to a mathematical level.
  557.  
  558.       IMHO this book is another must have, at least read it once, I think
  559.       that it pays to have this book as a standard reference, really highly
  560.       recommended....
  561.       ---------------
  562.  
  563.       Photorealism and Ray Tracing in C - Watkins, Coy and Finlay
  564.       ISBN:  1-55851-247-0 published by M&T books...
  565.  
  566.       Description:
  567.  
  568.       I've been looking for a good book that deals with 3D math for a
  569.       long time, given that math isn't my strong point, I wanted a book
  570.       with clear descriptions, diagrams and useful examples, anyway, I
  571.       accidentally ordered this book, (I dont program in C), but I've
  572.       got to say, its been better for 3D math, than ANY 3D math book
  573.       Ive seen to date!    It also covers stuff like colour reduction,
  574.       image enhancements and effects, anti-aliasing, and other useful
  575.       topics....
  576.  
  577.       Overall, a must have book for any graphics programmer.... pc
  578.       -------------
  579.  
  580.       Also It might be a good idea to get back issues of Dr Dobbs journal
  581.       with the articles Michael Abrash wrote about Mode-X in, as you really
  582.       need the pictures to appreciate his stuff.
  583.  
  584.       Footnote: Apparently Mike is now working for Microsoft, poor man, what
  585.                 a cruel twist of fate, that a man so into getting code to
  586.                 run as fast as possible should have to work for them!!
  587.  
  588.       Other magazine's, especially programmer based ones, PC Techniques have
  589.       had some articles, and also game designer magazine, although these
  590.       seem to have been deleted (they are magazine's on disk), try archie
  591.       for GMD*.* GDM1.ARJ and GDM2.ARJ I know about, but they are a little
  592.       too simple for my taste, may be helpful to newer games programmers.
  593.  
  594.       Also, for the more acedemic, or those who are at a good school etc,
  595.       I would reccomend ACM Siggraph papers, and IEEE transactions on
  596.       graphics, both of which are really leading the way, can be a bit
  597.       heavy going, but some useful gems for us PC programmers too.
  598.  
  599.       -=END OF FAQ=-
  600.  
  601.       Written by PC (Phil... philc.... zoombapup etc  ))
  602.       please ask permission before re-printing somewhere else.....
  603.  
  604.       Oh, and If Ive forgotten anyone-anything, please feel free to write
  605.       to me and ask for info to be included (not things like "please email
  606.       me source to set mode-x in quickfortran"), or general questions that
  607.       you feel arent answered here, or in the source files mentioned.
  608.  
  609.       One last thing,
  610.  
  611.       Take care y'all, and have a nice day!
  612.  
  613.       Zoombapup // CodeX   :)
  614.  
  615.  
  616.  
  617.  
  618.  
  619.